Remove an (incorrect) compiler workaround in the __mu function. The workaround relied on rvalue references binding to non-function lvalues, while the original formulation (with std::forward) does the right thing. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@124241 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/functional b/include/functional index a5a7dc2..73c6c59 100644 --- a/include/functional +++ b/include/functional
@@ -1559,10 +1559,7 @@ __mu(_Ti&, _Uj& __uj) { const size_t _Indx = is_placeholder<_Ti>::value - 1; - // compiler bug workaround - typename tuple_element<_Indx, _Uj>::type __t = get<_Indx>(__uj); - return __t; -// return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj)); + return _STD::forward<typename tuple_element<_Indx, _Uj>::type>(get<_Indx>(__uj)); } template <class _Ti, class _Uj>